Attribute VB_Name = "NetStatus"
Option Explicit

Public Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
'Internet connection VIA Proxy server.
Public Const ProxyConnection As Long = &H4

'Modem is busy.
Public Const ModemConnectionIsBusy As Long = &H8

'Internet connection is currently Offline
Public Const InternetIsOffline As Long = &H20

'Internet connection is currently configured
Public Const InternetConnectionIsConfigured As Long = &H40

'Internet connection VIA Modem.
Public Const ModemConnection As Long = &H1

'Remote Access Server is installed.
Public Const RasInstalled As Long = &H10

'Internet connection VIA LAN.
Public Const LanConnection As Long = &H2

Public Function IsLanConnection() As Boolean
    Dim dwFlags As Long
    'return True if LAN connection
    Call InternetGetConnectedState(dwFlags, 0&)
    IsLanConnection = dwFlags And LanConnection
End Function


Public Function IsModemConnection() As Boolean
    Dim dwFlags As Long
    'return True if modem connection.
    Call InternetGetConnectedState(dwFlags, 0&)
    IsModemConnection = dwFlags And ModemConnection
End Function


Public Function IsProxyConnection() As Boolean
    Dim dwFlags As Long
    'return True if connected through a proxy.
    Call InternetGetConnectedState(dwFlags, 0&)
    IsProxyConnection = dwFlags And ProxyConnection
End Function


Public Function IsConnected() As Boolean
    'Returns true if there is any internet connection.
    IsConnected = InternetGetConnectedState(0&, 0&)
End Function


Public Function IsRasInstalled() As Boolean
    Dim dwFlags As Long
    'return True if RAS installed.
    Call InternetGetConnectedState(dwFlags, 0&)
    IsRasInstalled = dwFlags And RasInstalled
End Function
